import {
	hashHistory
} from 'react-router';
import {
	Toast,
	Modal
} from 'antd-mobile';
import userData from 'js/core/userData';
var $ = require('jquery');
// import 'whatwg-fetch'
// window.defaultApi = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) ? 'http://scproxy.fongwell.com' : 'http://121.201.14.250:84';
window.defaultApi = 'http://will.skycount.cn:84';
// window.defaultApi = 'http://127.0.0.1:9090/';
export default async (url = '', data = {}, type = 'GET', method = 'fetch') => {
	let baseUrl = window.localStorage.getItem('baseUrl') || window.defaultApi;
	// type = "Post"
	type = type.toUpperCase();
	url = baseUrl + url;
	let user = userData.get();
	if (user) {
		data.token = user.token;
	}
	let dataStr = '';
	// if (type == 'GET') {
	//数据拼接字符串
	Object.keys(data).forEach(key => {
		dataStr += key + '=' + data[key] + '&';
	});

	if (dataStr !== '') {
		dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
		url = url + '?' + dataStr;
	}
	// }
	// if (window.fetch && method == 'fetch') {
	// 	let requestConfig = {
	// 		credentials: 'include',
	// 		method: type,
	// 		headers: {
	// 			'Accept': 'application/json',
	// 			'Content-Type': 'application/json',
	// 		},
	// 		mode: 'cors',
	// 		cache: 'none-cache'
	// 	};
	// 	if (type == 'POST') {
	// 		Object.defineProperty(requestConfig, 'body', {
	// 			value: JSON.stringify(data)
	// 		});
	// 	}
	// 	try {
	// 		const response = await fetch(url, requestConfig);
	// 		const responseJson = await response.json();
	// 		if (responseJson.code === -2) {
	// 			Toast.fail(responseJson.message, 1);
	// 			hashHistory.push('/login');
	// 		} else if (responseJson.code === -1) {
	// 			Toast.fail(responseJson.message, 1);
	// 			return;
	// 		}
	// 		return responseJson;
	// 	} catch (error) {
	// 		throw new Error(error);
	// 	}
	// } else {
	return new Promise((resolve, reject) => {
		// let requestObj;
		// if (window.XMLHttpRequest) {
		// 	requestObj = new XMLHttpRequest();
		// } else {
		// 	requestObj = new window.ActiveXObject;
		// }

		// let sendData = '';
		// if (type == 'POST') {
		// 	sendData = JSON.stringify(data);
		// }
		// requestObj.open(type, url, true);
		// requestObj.setRequestHeader('Content-type', 'application/json');
		// requestObj.send(sendData);

		// requestObj.onreadystatechange = () => {
		// 	if (requestObj.readyState == 4) {
		// 		if (requestObj.status == 200) {
		// 			let obj = requestObj.response;
		// 			if (typeof obj !== 'object') {
		// 				obj = JSON.parse(obj);
		// 			}
		// 			if (obj.code === -2) {
		// 				Toast.fail(obj.message, 1);
		// 				hashHistory.push('/login');
		// 				return;
		// 			} else if (obj.code === -1) {
		// 				Toast.fail(obj.message, 1);
		// 				return;
		// 			}
		// 			resolve(obj);
		// 		} else {
		// 			reject(requestObj);
		// 		}
		// 	}
		// };
		if (type === "POST") {
			 data = JSON.stringify(data);
		} else {
			data = null;
		}

		$.ajax({
			url: url,
			data: data,
			contentType: "application/json; charset=utf-8",
			type: type,
			success: function (obj) {
				if (obj.code === -2) {
					Toast.fail(obj.message, 2);
					hashHistory.push('/login');
					return;
				} else if (obj.code === -1) {
					Toast.fail(obj.message, 2);
					return
				}
				resolve(obj);
			},
			fail: function () {
				// cb(false);
				reject(false);
			},
			error: function () {
				reject(false);
			}
		});

	});
	// }
};
